
Transform =	function(pos, rot, scale)
{
	/************************************
	/*			Properties				
	/************************************/
	
		/*! Determine if the transform is used by a View. If so, the result Matrix is : 
		/*	m_Rotation * m_Position instead of m_Position*m_Rotations			*/
		
		//	Just a word about euler angles :	To Euler, every rotation can be factorize in 3 rotations, one for each
		//	repere axis
		
		this.m_Position			=	new Vec4();     /*!< Vector3 Position                           */
		this.m_EulerAngles     	= 	new Vec4(); 	/*!< Store current euler angles values          */
		this.m_Scale			=	new Vec4();		/*!< Scaling value of current Object			*/
		
		this.m_WorldMatrix		=	new Matrix4();	/*!< Store the Modelisation Matrix send to the shaders										*/
		this.m_WorldInverse		=	new Matrix4();	/*!< Store the Inverse Modelisation Matrix, used for, well, cancelling a transformation		*/
		
		this.m_LocalMatrix		=	new Matrix4();	/*!< Store the Local Modelisation Matrix 									*/
		this.m_LocalInverse		=	new Matrix4();	/*!< Store the Local Inverse Modelisation Matrix*/
		
	/************************************
	/*          Constructors            
	/************************************/
	
		if(pos!= undefined)
		{
			this.m_Position= pos;
		}
		else
		{
			this.m_Position= new 	Vec4(0.0, 0.0, 0.0, 1.0);
		}
		
		if(rot!= undefined)
		{
			this.m_EulerAngles= rot;
		}
		else
		{
			this.m_EulerAngles= new 	Vec4(0.0, 0.0, 0.0, 1.0);
		}
		
		if(scale!= undefined)
		{
			this.m_Scale= scale;
		}
		else
		{
			this.m_Scale= new 	Vec4(1.0, 1.0, 1.0, 1.0);
		}

		this.m_Forward 		=  new 	Vec4(0.0, 0.0, -1.0, 1.0);
	
}

